import qqmap from '../../../utils/qqmap'
// house_pkg/pages/locate/index.ts
Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 当前的位置信息
    address: '',
    // 周边的小区信息
    point: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad () {
    this.getLocation()
  },
  // 获取所在经纬度
  async getLocation () {
    // wx.getLocation  小程序内置方法获得当前位置的经纬度
    const { latitude, longitude } = await wx.getLocation()
    // console.log(latitude, longitude)
    // 调用封装的逆地址解析   传入经纬度
    this.reverseGeocoder(latitude, longitude)
  },
  // 手动获取位置
  async chooseLocation () {
    // wx.chooseLocation()  小程序内置方法腾讯地图选择位置
    const { latitude, longitude } = await wx.chooseLocation()
    // console.log(latitude, longitude)
    // 调用封装的逆地址解析   传入经纬度
    this.reverseGeocoder(latitude, longitude)
  },
  //  封装逆地址解析
  reverseGeocoder (latitude, longitude) {
    // 根据拿到的经纬度转换具体地址
    qqmap.reverseGeocoder({
      location: {
        latitude,
        longitude
      },
      //成功后的回调
      success: res => {
        // console.log(res)
        // 储存
        this.setData({ address: res.result.address })
        // 调用 poi搜地址检索
        this.search(latitude, longitude)
      }
    })
  },

  // poi搜地址检索
  search (latitude, longitude) {
    qqmap.search({
      // 搜索内容的关键词
      keyword: '住宅小区',
      // 搜索的经纬度
      location: {
        latitude,
        longitude
      },
      success: res => {
        console.log(res)
        // 储存
        // this.setData({ point: res.data })

        // 因为页面用不到那么多数据，所以只把id, title保存
        // this.setData({
        //   point: res.data.map(item => {
        //     return { id: item.id, title: item.title }
        //   })
        // })

        // 因为item都是对象，可以直接解构使用
        // this.setData({
        //   point: res.data.map(({ id, title }) => {
        //     return { id, title }
        //   })
        // })

        // 通过解构只取出id 和 title
        this.setData({ point: res.data.map(({ id, title }) => ({ id, title })) })
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady () {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow () {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide () {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload () {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh () {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom () {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage () {}
})
